In general, a video or video program is formed using a plurality of sequential still-picture frames organized temporally to create a motion picture when presented sequentially at a particular speed. Video production, video delivery, and video presentation typically involve encoding and/or decoding video information including the still-picture frames (i.e., video frames). For example, video information may be encoded to enhance the visual quality of a video presentation and/or to compress the video information to use less storage space and/or to decrease delivery time to a viewer. Example video encoding standards include, for example, H.263, Moving Picture Expert Group (“MPEG”) standards, H.264, VC-1, etc.
Videos can be generated using different frame rates (e.g., 7 frames/second, 15 frames/second, 30 frames/second, etc.) and different pixel resolutions. In any case, processing (e.g., encoding or decoding) video typically requires processing relatively large amounts of data. Processing such large amounts of information in a timely manner while maintaining high video quality and accuracy can require a considerable amount of processing power. In some cases, dedicated video systems are used to encode and/or decode video information. In other cases, general purpose or multi-purpose computers having general purpose processors and/or enhanced video processing capabilities (e.g., video processors) are used to encode and/or decode video information.
Some video encoding or decoding devices contain motion estimation and motion compensation parts designed to code and decode motion information with minimal or no losses in it. Some motion estimation and motion compensation parts of a video processing device comprise an upsampler to improve the quality of coded or decoded video when fewer bits are used for coding of motion information as specified in many video coding standards. Typically, an upsampler is a time consuming part of motion estimation or motion compensation processes.